<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 预解析： js引擎（js解释器） 在逐行执行代码之前 先扫一遍全部代码
    // 我扫的这一遍， 干两件事

    // 1. 先变量提升, 变量提升，只提升 声明， 并不提升赋值
    // 2. 再函数声明提升， 只会提升函数声明， 不提升函数表达式


    console.log(a)    // function
    var a = 123
    function a() {
      console.log(456)
    }

    // 1. var a
    // 2. function a() {
    //   console.log(456)
    // }
    //   console.log(a)    // function
    //  a = 123





    // fn()
    // var fn = function() {
    //   console.log(1111)
    // }


    // var fn
    // fn()
    // fn = funciton() {}


    // console.log(a)  // undefined
    // var a = 123


    // var a 
    // console.log(a)  // undefined
    // a = 123












  </script>
</body>
</html>